package com.ctshk.rpc.order.train.service;

import com.ctshk.common.dto.Result;
import com.ctshk.common.model.TokenUser;
import com.ctshk.rpc.order.train.req.TrainOrderRefundApprovalReq;
import com.ctshk.rpc.order.train.req.TrainOrderRefundUpdateReq;

/**
 * <p>
 * 火车退款记录 服务类
 * </p>
 *
 * @author 彭柳霖
 * @since 2021-03-17
 */
public interface ITrainOrderRefundService{

    /**
     * 操作退款
     *
     * @param refundId 退款明细id
     *         userId 用户id
     * @return 返回值
     */
    Result delete(Long refundId, Long userId);

    /**
     * 订单操作 - 退款记录 - 操作退款
     *
     * @param  trainOrderRefundUpdateReq
     * @return Long
     */
    Result refund(TrainOrderRefundUpdateReq trainOrderRefundUpdateReq, TokenUser tokenUser);

    /**
     * 确认退款(财务-内部调用)
     * @param refundNumber
     * @return
     */
    Result confirmRefund(String refundNumber, Long userId);

    Result approval(TrainOrderRefundApprovalReq req);
}
